Hexo + Github搭建博客

  1. 1. 需要的环境
  2. 2. 安装
  3. 3. 命令文档
  4. 4. Github上的操作
  5. 5. 修改配置
  6. 6. 写博客
  7. 7. 部署
  8. 8. 安装一个主题
  9. 9. 注意事项
  10. 10. 升级Hexo
  11. 11. 本地Debug
  12. 12. algolia
  13. 13. Note

Hexo可以作为一个Server使用(hexo server 运行), hexo-deployer-git是官方开发的插件用于 Github 上搭建博客。

需要的环境

Hexo基于node.js,故需要先装nodejs以及npm。推荐装LTS的。
确保git版本是最新的

最好了解下nodejs项目

请注意 hexo-deployer-git 第一次登陆时不能设置 Socks5代理(蛋疼的是中文 cmd 下显示乱码),实际显示的是ServicePointManager 不支持具有 socks5 方案的代理

安装

1
npm install hexo-cli -g

创建文件夹并进入

1
npm install hexo-deployer-git --save

其中-g--global的简写,使用后是安装到系统中,你可以在任何地方使用Hexo命令,而下面则是将hexo-deployer-git直接安装到文件夹(项目中)

初始化blog(下面命令blog的name可以改为你想要的名字)

1
hexo init blog

需要注意的是这个blog文件夹是一个独立的项目,你可以挪出来放到你想要的地方,或者改名都行

命令文档

https://hexo.io/zh-cn/docs/commands.html

Github上的操作

新增一个仓库(Repositories),仓库名为yourname.github.io

修改配置

找到”blog”文件夹里的_config.yml
改最下面

1
2
3
4
deploy:
type: git
repository: http://github.com/yourname/yourname.github.io.git
branch: master

写博客

.\source\_posts
这里放的博客文本, hexo new [layout] <title>
用于生成一个新博客。
不过一般我会手动建

部署

1
hexo d -g

意思可以看上面的命令文档,基本等同于hexo g -d

安装一个主题

这个就自己折腾吧,很多主题还要装依赖
还有很多的坑

注意事项

网页有缓存

升级Hexo

1
2
npm install -g hexo-cli
npm update --save

(我这好像没成功,因为cli版本其实没有升级,Hexo版本倒是到了6)

最终是看了这个成功的 –2022-06-29
https://novnan.github.io/Hexo/update_hexo/

而且是试了下就好了,完全没搞懂之前啥毛病。
可能跟npm update --save这个有关
只有用了这个才会更新项目的npm包


7.3.0 升级 -2024-09-14

1
2
npm install  hexo@7.3.0
npm update --save

之前的办法没法升级,估计是因为大版本更新的缘故。hexo 的官方文档感觉不太完善。默认给的安装方式是npm install -g hexo-cli,这个是装到全局目录,hexo-cli 是hexo这个可执行文件(添加了环境变量),所以是全局。然后hexo init blog创建一个博客(项目文件),hexo -v可以查看版本。

因此升级是在项目文件夹里更新包(我因为长期乱用命令,可能会有点乱,例如 hexo-cli也被我装到了博客的文件夹里,实际应该不需要)。

本地Debug

1
hexo s --debug

可以本地debug好了再提交,不用像逗逼的我一样每次提交了看有问题再改。

algolia

不再使用

可以看下这里
https://github.com/fi3ework/hexo-theme-archer/issues/304

https://ted423.github.io/etc/hexo-theme-icarus/

1
2
3
4
5
6
7
8
9
10
11
12
13
 hexo algolia --help
INFO Validating config
Usage: hexo algolia

Description:
Index your content in Algolia Search API

Options:
--dry-run Does not push content to Algolia (default: false).
--flush Resets the Algolia index before starting the indexation (default: false).
--indexing-key An algolia API key with add/delete records permissions.
It should be different than the search-only API key configured in _config.yml.
--layouts A comma-separated list of page layouts to index (default: "page").

flush 什么的,很少有教程说,不过文件换路径会非常有用

Note

  • hexo 的相对链接只能在图片或者[]()里使用,<>里不会解析